/*!
\file Interface.h
\author Po
\brief ThirdPersonCamera target interface.
*/
#pragma once

#include <d3d9.h>
#include <d3dx9.h>

/*!
\class Target
\brief Any class implements this Target can be accepted as ThirdPersonCamera target.
*/
class Target
{
public:
	/*! Return current position. */
	virtual const D3DXVECTOR3 &Position() const = 0;
	/*! Return current look direction */
	virtual const D3DXVECTOR3 &Look() const = 0;
	/*! Return this object's world matrix. */
	virtual const D3DXMATRIX &World() const = 0;

public:
	/*! Accept Y axis rotation by fAngle radian. */
	virtual void UpdateRotationY(float fAngle) = 0;
};